package com.candy.control;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@Controller
//@RequestMapping("/login")
public class LoginController  {
//映射当前方法对应的浏览器路径
//    处理前台发送的请求路径为该注解中指定的路径
    @RequestMapping("/loginController.do")
    public ModelAndView show1(@RequestParam("username") String username,
                              @RequestParam("userpwd") String userpwd){
        ModelAndView mv=new ModelAndView();
        System.out.println(username);
        System.out.println(userpwd);
//    设置返回视图的名字： 视图解析器会将视图的前缀后缀拼接好后返回：
//    WEB-INF/pages/welcome.jsp
        mv.setViewName("welcome");
//        在视图模型中添加参数，可以传递给前台页面
        mv.addObject("msg","springMVC的第一个程序。。。。");
        return mv;
    }

    @RequestMapping("/show2.do")
//    告诉springMVC框架将list中的数据转换成json字符串
    @ResponseBody
    public List<Map<String,Object>> show2(){
             List<Map<String,Object>>  lp=new ArrayList<>();
             Map<String,Object> mp=new HashMap();
             mp.put("name","tom");
             mp.put("age",25);
             lp.add(mp);
        return lp;
    }

    @RequestMapping("/show3.do")
    public ModelAndView show3()  {
//       可以在创建视图对象的时候，直接指定视图的名字
        ModelAndView mv=new ModelAndView("welcome");
        return mv;
    }

    @RequestMapping("/show4.do")
    public String show4()  {
//        如果时间返回字符串，则返回的是视图的名字
        return "welcome";
    }

    @RequestMapping("/show5.do")
    public String show5(Model model)  {
//        可以将model作为参数，调用addAttribute，添加属性，像视图传递参数
        model.addAttribute("msg","SpringMVC20220601");
//        如果时间返回字符串，则返回的是视图的名字
        return "welcome";
    }




}
